草庐IT

linux - 在 bash 中暂时禁用 'set-e'/'set -o errexit'?

这个问题在这里已经有了答案:Howtoignorereturnvaluedifferentthen0whenIhaveset-e?(2个答案)关闭7年前。我有一个脚本使用killall来确保应用程序在启动之前尚未运行:#!/bin/bashset-esome_commandanother_commandsudokillallmyapp#thiscausesthescripttofailifmyappisn'trunningsleep10myappstart但是,如果myapp没有运行,killall将退出脚本,因为它会返回一个错误。解决此问题的一个方法是暂时禁用set-oerrexit

linux - 如何进入ubuntu docker容器的bash?

我想运行一个ubuntu容器并输入bash:[root@localhostbackup]#dockerrunubuntubash[root@localhostbackup]#ubuntu容器直接退出。如何输入bash? 最佳答案 使用-i和-t选项。示例:$dockerrun-i-tubuntu/bin/bashroot@9055316d5ae4:/#echo"HelloUbuntu"HelloUbunturoot@9055316d5ae4:/#exit参见:DockerrunReference$dockerrun--help|eg

linux - 出现错误 : set +e does not seem to do the job 时自动退出 bash shell 脚本

虽然20年来我都知道shell脚本不关心错误,但我一直对这种默认情况下的粗心大意感到好笑。即使您明确要求他们不要吞下错误并遵循crashearly原则,这仍然不会发生。引用Automaticexitfrombashshellscriptonerror,set+e似乎没有完成这项工作,这是一个简短的例子:#!/bin/bash-vxset+eapt-getinstallnonexisting1apt-getinstallnonexisting2set-e输出:#!/bin/bash-vxset+e+set+eapt-getinstallnonexisting1+apt-getinstal

linux - 如何在 bash 中重命名包含反斜杠的文件名?

我得到了一个tar文件,解压后,有很多文件命名如下ab\cd\e\fg\h我想将他们的名字更正到子目录中的文件中,例如ab/cd/e/fg/h当变量包含反斜杠时,我会遇到一个问题,它会更改原始文件名。我想写一个脚本来重命名它们。 最佳答案 参数扩展是必经之路。bash您拥有所需的一切,无需使用find等外部工具.$toucha\\bc\\d\\e$ls-ltotal0-rw-r--r--1ghotistaff011Jun23:13a\b-rw-r--r--1ghotistaff011Jun23:13c\d\e$forfilein*\

linux - 使用 Bash 在给定的特定数字范围内生成随机 float

有人可以帮我在bash(shell)中生成具有给定数字范围的随机float吗?我在下面找到了命令,但他们还有其他选择吗?(使用awk或$rand命令。)jot-p201 最佳答案 如果您有可用的GNUcoreutils,您可以:seq0.011|shuf|head-n1其中0为开始(含),.01为增量,1为结束(含)。 关于linux-使用Bash在给定的特定数字范围内生成随机float,我们在StackOverflow上找到一个类似的问题: https://

linux - Bash 脚本不继续读取文件的下一行

我有一个shell脚本,可以将执行的命令的输出保存到CSV文件中。它从以下格式的shell脚本中读取必须执行的命令:ffmpeg-i/home/test/videos/avi/418kb.avi/home/test/videos/done/418kb.flvffmpeg-i/home/test/videos/avi/1253kb.avi/home/test/videos/done/1253kb.flvffmpeg-i/home/test/videos/avi/2093kb.avi/home/test/videos/done/2093kb.flv可以看到每一行都是一个ffmpeg命令。但

linux - bash 中的简单正则表达式解析

我想解析一个日志文件(log.txt),其中包含与这些类似的行:2010-10-1907:56:14URL:http://www.website.com/page.php?ID=26[13676]->"www.website.com/page.php?ID=26"[1]2010-10-1907:56:14URL:http://www.website.com/page.php?ID=44[14152]->"www.website.com/page.php?ID=44"[1]2010-10-1907:56:14URL:http://www.website.com/page.php?ID=1

regex - Bash - 如何计算指令数?

我有一些*.s汇编文件。我想数一数它们包含多少条指令。例如,要计算我执行的所有mul指令:cat*.s|grep-P'\t'"mul"|wc-l它为我提供了所有mul指令的复合编号。我想要这样的输出:mul:893add:12054sub:2356...问题是没有目标平台支持的指令表。每个目标平台都有不同的指令集。支持的指令必须从现有的汇编文件中推导出来。我可以在没有Perl/Pythonfoundry的情况下仅在Bash中完成吗? 最佳答案 你可以像这样得到它们:grep-hP'^[\t]+[a-z]*'*.s|sed's/^[\

LINUX:列出所有目录,插入 bash 数组

这是我尝试的最终结果:我有超过15个用户使用我的应用程序的克隆实例,有时我需要更新文件(它们几乎都保持不变——一切都是动态的。这是为了更新/新功能)。我写了一个非常简单的bash脚本,我必须手动将/home/中的每个用户放入数组中。但我需要这个来扩展。我怎样才能将目录列表(类似于LS命令)仅将目录名称输入到bash数组中。不过,我可能希望在bash文件中使用此命令,因为我希望它获取/home/目录中的所有用户,然后推送到数组中(例如:webUsers(adamjohnjack)这是我当前脚本的快照(非动态用户列表)webUsers(adamjohnjack)foriin"${webUs

linux - Bash 字母数字列表生成

我需要打印这样的东西:abc...zABC...Z012...9这个可以单独做但是。forfin{a..z};doecho$f;doneforfin{A..Z};doecho$f;doneforfin{0..9};doecho$f;done但是我怎样才能一次性完成呢?也许是这样的?但是不起作用。forfin{a..z:A..Z:1..9};doecho$f;done 最佳答案 forfin{a..z}{A..Z}{0..9};doecho"$f"done 关于linux-Bash字母数字